﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DADOS.unidade;
using DADOS.auxiliares;

namespace PROAD.admin.Forms
{
    public partial class FormUsb : System.Web.UI.Page
    {
        
        metUnidade metUnidade = new metUnidade();
        metEndereco metEndereco = new metEndereco();

        protected void Page_Load(object sender, EventArgs e)
        {
         
            if(!IsPostBack)
            {
                if(Request.QueryString["cod"] != null)
                {
                    int intCodUS = Convert.ToInt32(Request.QueryString["cod"].ToString());
                    var objUS = metUnidade.Selecionar(intCodUS);
                    CarregarDados(objUS);
                }else
                {
                    CarregarDdlUf();
                    ddlMunicipio.Enabled = false;
                }
            }

        }

        /// <summary>
        /// Preencher o form da página para edição
        /// </summary>
        /// <param name="objUs">Objeto TB_US</param>
        protected void CarregarDados(DADOS.TB_US objUs)
        {
            CarregarDdlUf();
            txtNomeUs.Text = objUs.NO_US;
            txtRegiao.Text = objUs.NO_REGIAO;
            ddlUf.SelectedValue = objUs.CO_UF.ToString();
            CarregarDdlCidade(Convert.ToInt32(ddlUf.SelectedValue));
            ddlMunicipio.SelectedValue = objUs.CO_MUNICIPIO.ToString();
            ddlStatus.SelectedValue = objUs.NR_STATUS.ToString();
            txtEndereco.Text = objUs.DS_ENDERECO;
            txtCep.Text = objUs.DS_CEP;
        }

        /// <summary>
        /// Carregar a DDL UF
        /// </summary>
        protected void CarregarDdlUf()
        {
            var list = metEndereco.ListaUF();
            ddlUf.DataSource = list;
            ddlUf.DataBind();
            ddlUf.Items.Insert(0, new ListItem("UF", "0"));
        }

        /// <summary>
        /// Carregar a DDL Município
        /// </summary>
        /// <param name="intCodUf">int Código da UF</param>
        protected void CarregarDdlCidade(int intCodUf)
        {
            var list = metEndereco.ListaCidade(intCodUf);
            ddlMunicipio.DataSource = list;
            ddlMunicipio.DataBind();
            ddlMunicipio.Items.Insert(0, new ListItem("Cidade", "0"));
        }

        protected void ddlUf_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(ddlUf.SelectedValue != "0")
            {
                CarregarDdlCidade(Convert.ToInt32(ddlUf.SelectedValue));
                ddlMunicipio.Enabled = true;
            }else
            {
                CarregarDdlCidade(0);
                ddlMunicipio.SelectedValue = "0";
                ddlMunicipio.Enabled = false;
            }

        }

        /// <summary>
        /// Vericar preenchimento do formurário
        /// </summary>
        /// <returns>True ou False</returns>
        protected Boolean ValidarForm()
        {
            string strNomeUnidade = txtNomeUs.Text;
            if (strNomeUnidade.Length <= 4)
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Nome da US deve ter mais do que 04 caracteres!";
                txtNomeUs.Focus();
                return false;
            }

            string strRegiao = txtRegiao.Text;
            if (strRegiao.Length <= 4)
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Região deve ter mais do que 04 caracteres!";
                txtRegiao.Focus();
                return false;
            }

            string strUf = ddlUf.SelectedValue;
            if (strUf == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Favor selecionar uma UF!";
                ddlUf.Focus();
                return false;
            }

            string strMunicipio = ddlMunicipio.SelectedValue;
            if (strMunicipio == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Favor selecionar um Município!";
                ddlMunicipio.Focus();
                return false;
            }

            string strStatus = ddlStatus.SelectedValue;
            if (strStatus == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Favor selecionar um Status!";
                ddlStatus.Focus();
                return false;
            }

            string strEndereco = txtEndereco.Text;
            if (strEndereco.Length <= 4)
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Endereço deve ter mais do que 04 caracteres!";
                txtEndereco.Focus();
                return false;
            }

            return true;
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            if(ValidarForm())
            {
                var metUnidade = new DADOS.unidade.metUnidade();

                var objUS = new DADOS.TB_US();

                objUS.NO_US = txtNomeUs.Text;
                objUS.NO_REGIAO = txtRegiao.Text;
                objUS.CO_UF = Convert.ToInt32(ddlUf.SelectedValue);
                objUS.CO_MUNICIPIO = Convert.ToInt32(ddlMunicipio.SelectedValue);
                objUS.NR_STATUS = Convert.ToInt32(ddlStatus.SelectedValue);
                objUS.DS_CEP = txtCep.Text;
                objUS.DS_ENDERECO = txtEndereco.Text;
                objUS.CO_PROFISSICIONAL = Convert.ToInt32(Session["CO_PROFISSIONAL"].ToString());
                
                if (Request.QueryString["cod"] != null)
                {
                    objUS.CO_US = Convert.ToInt32(Request.QueryString["cod"].ToString());
                    metUnidade.Alterar(objUS);
                    Response.Redirect("/admin/consulta/ConsultaUnidadeCadastrada.aspx?msn=2");
                }else
                {   
                    metUnidade.Incluir(objUS);
                    Response.Redirect("/admin/consulta/ConsultaUnidadeCadastrada.aspx?msn=1");
                }

                
            }else
            {
                ModalPopupMsn.Show();
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("/admin/consulta/ConsultaUnidadeCadastrada.aspx");
        }

        
    }
}